|

Kredi Kartlarının Doğruluğunun Onaylanması
Internette bir çok siteye girmek için Kredi Kartı Numaranızı vermeniz gerekir. Atmasyon Kredi kartı girmeyi denediyseniz, bunun işe yaramadığını görmüşsünüzdür. Çoğu Kredi Kartlarının geçerliliği Check-Digit (basamak denetimi) yöntemiyle Hesaplanır. Çok basit bir algoritma uygulanarak, Check-Digit kullanılarak Encode edilmiş kredi kartının geçerli olup olmadığı öğrenilebilir. İşte bu yazıda da internet sitelerinin bu işi temel olarak nasıl gerçekleştirdiğini anlatacağım.
1.Başlık, Uzunluk, ve Check Digit Kavramları:
Bu tabloda geçerliliğini kontrol etmek isteyebileceğiniz Kartlarla ilgili bilgi verilmiştir.
CARD TÜRÜ |
Başlık |
Uzunluk |
Check digit algoritması |
MASTERCARD |
51-55 |
16 |
mod
10 |
VISA |
4 |
13,
16 |
mod
10 |
AMEX |
34 37 |
15 |
mod
10 |
Diners
Club/ Carte Blanche |
300-305 36 38 |
14 |
mod
10 |
Discover |
6011 |
16 |
mod
10 |
enRoute |
2014 2149 |
15 |
Herşey
olabilir |
JCB |
3 |
16 |
mod
10 |
JCB |
2131 1800 |
15 |
mod
10 |
2. LUHN Formülü (Mod 10) Geçerlilik Testi
Aşağıdaki işlemleri uygulayıp Kredi kartı numarasının geçerliliğini kontrol edebilirsiniz.
Adım 1: Karttaki toplam rakam sayısını belirleyin.
Adım 2-a: Karttaki rakam sayısı tek ise, karttaki rakamları sırasıyla; 1,2,1,2... dizisindeki rakamlarla çarpın.
Adım 2-b: Karttaki rakam sayısı çift ise, karttaki rakamları sırasıyla; 2,1,2,1... dizisindeki rakamlarla çarpın.
Adım 3: Çarpımlar sonucu elde ettiğiniz tüm rakamların basamaklarındaki sayı değerlerini toplayın ve bulduğunuz bu sonucun mod-10'a göre neye denk geldiğini hesaplayın. Yani bulduğunuz bu sonucu 10'a bölün.Kalan 0 ise; üzerinde işlem yaptığınız numara gerçekten bir karta aittir demektir.
ÖRNEK: 49927398716 numarasının doğruluğunu kontrol edelim.
Adım 1: Kartımızdaki toplam rakam sayısı = 11 -->Tek
Adım 2-a: Kartımızdaki rakamları 1,2,1,2... dizisindeki rakamlarla çarpalım:
4*1=4
9*2=18
9*1=9
2*2=4
7*1=7
3*2=6
9*1=9
8*2=16
7*1=7
1*2=2
6*1=6
Adım 3: Çarpımlar sonucu elde ettiğimiz tüm rakamların basamaklarındaki sayı değerlerini toplayalım:
4+(1+8)+9+4+7+6+9+(1+6)+7+2+6=70
Şimdi de 70'in mod-10'a göre neye denk geldiğini hesaplayalım:
70=0(mod 10) veya 70/10=7 ---->Kalan=0
Sonuç: Bu gerçekten doğru bir kredi kartı numarasıdır.
|